package com.sniff.atp.dto.wms;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @Author: ChenShuiHua
 * @Description: 单个审单
 * @DateTime: 2022/10/12 16:18
 **/
@Data
public class SingleReviewReqDTO {

    /**
     * 发货审单编号
     */
    @ApiModelProperty(value = "发货审单编号")
    @NotBlank(message = "发货审单编号不能为空")
    private String deliveryReviewCode;

    /**
     * 审核日本配送公司id（客户）
     */
    @ApiModelProperty(value = "审核日本配送公司id（客户）")
    private Long auditIntShipConfigId;

    /**
     * 审核日本配送公司名称（客户）
     */
    @ApiModelProperty(value = "审核日本配送公司名称（客户）")
    private String auditDistribution;

    /**
     * 审核中国货代公司id
     */
    @ApiModelProperty(value = "审核中国货代公司id")
    @NotNull(message = "审核中国货代公司id不能为空")
    private Long auditIntForwarderConfigId;

    /**
     * 审核中国货代公司名称
     */
    @ApiModelProperty(value = "审核中国货代公司名称")
    private String auditForwarder;

    /**
     * 审核运输方式
     */
    @ApiModelProperty(value = "审核运输方式")
    private String auditShippingType;

    /**
     * 审核原因
     */
    @ApiModelProperty(value = "审核原因")
    private String auditReason;

    /**
     * 审核原因编码
     */
    @ApiModelProperty(value = "审核原因编码")
    private String auditReasonCode;

    /**
     * 审核原因(日文)
     */
    @ApiModelProperty(value = "审核原因(日文)")
    private String auditReasonJp;

    /**
     * 审核备注
     */
    @ApiModelProperty(value = "审核备注")
    @Length(max = 2000, message = "审核备注最大不超过2000字符")
    private String auditRemark;

    /**
     * 审单类型: 0 保持不变 1 整单审核 2 按照SKU审核
     */
    @ApiModelProperty(value = "审单类型: 0 保持不变 1 整单审核 2 按照SKU审核")
    @NotNull(message = "审单类型不能为空")
    private Integer auditType;


    /**
     * 审单类型: 0 保持不变 1 整单审核 2 按照SKU审核
     */
    @ApiModelProperty(value = "审单SKU里列表，只有在auditType为按照sku审核有效")
    private List<DeliveryReivewSkuReqDTO> auditSkuList;

}
